package com.forenow.demo.demo25;

import java.sql.*;
/**
 * JDBC工具类
 *
 */
public class DBUtil {

    ResultSet resultSet;
    PreparedStatement pstmt;
    Statement stmt;
    Connection conn;
    /**
     * 连接数据库的方法
     */
    public Connection GetDB(String DB_URL, String USER,String PASS ) throws ClassNotFoundException, SQLException {

            //1.加载驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.获取链接
            conn = DriverManager.getConnection(DB_URL,USER,PASS);
            //3.获取Statement对象，作用：执行SQL操作
            // ResultSet executeQuery(String sql) 执行给定的 SQL 语句，该语句返回单个 ResultSet 对象。
            return conn;
       }
    /**
     *
     * 查询
     */
public  ResultSet Query(String sql,Object...values) throws SQLException {

        /**
         * 动态可变参数
         */
        pstmt = conn.prepareStatement(sql);
        for (int i = 0; i < values.length; i++) {
          pstmt.setObject(i+1,values[i]);
        }
        resultSet = stmt.executeQuery(sql);
    return resultSet;
}
    /**
     *
     * DML（insert,update,delete）
     */
        public  int update(String sql,Object...values) throws SQLException {
             pstmt= conn.prepareStatement(sql);
            for (int i = 0; i < values.length; i++) {
                pstmt.setObject(i+1,values[i]);
            }
            int i = pstmt.executeUpdate();
            return i;
        }

    /**
     * 关闭资源
     */
    public  void closeAll() throws SQLException {
        if (resultSet != null) {
            resultSet.close();
        }
        if (stmt != null) {
            stmt.close();
        }
        if (conn != null) {
            conn.close();
        }
         }
}
